Elasticsearch-এর Security Features এবং User Authentication
Elasticsearch-এ ডেটা সুরক্ষা এবং অ্যাক্সেস নিয়ন্ত্রণ নিশ্চিত করার জন্য বিভিন্ন Security Features এবং User Authentication পদ্ধতি রয়েছে। এগুলো Elasticsearch-কে সুরক্ষিত করে এবং অনুমোদিত ইউজারদের ডেটা অ্যাক্সেস করার জন্য প্রয়োজনীয় অথেন্টিকেশন এবং অথরাইজেশন নিয়ন্ত্রণে সহায়তা করে। Elasticsearch ৭.১০ এবং এর পরবর্তী ভার্সনে X-Pack সিকিউরিটি বিল্ট-ইন থাকে, যা ইউজার অথেন্টিকেশন, রোল-বেসড অ্যাক্সেস কন্ট্রোল (RBAC), এবং ডেটা এনক্রিপশন সাপোর্ট করে।
1. Elasticsearch-এর Security Features
a) TLS/SSL Encryption
Elasticsearch ক্লাস্টার এবং ক্লায়েন্টের (যেমন Kibana) মধ্যে ডেটা এনক্রিপশন করতে TLS/SSL ব্যবহার করা হয়।
Transport Layer Encryption: নোডগুলোর মধ্যে কমিউনিকেশন সিকিউর করতে Transport Layer Security সক্রিয় করুন।
HTTPS Setup: HTTP API কল এনক্রিপ্ট করতে HTTPS সক্রিয় করুন। সার্টিফিকেট এবং কী কনফিগার করতে elasticsearch.yml ফাইল ব্যবহার করুন:
Audit Logging সক্রিয় করলে Elasticsearch সমস্ত ইউজার এবং API এক্টিভিটি লগ করে। এতে কোনো সন্দেহজনক এক্টিভিটি সহজে মনিটর করা যায়।
Audit Logging কনফিগার করতে elasticsearch.yml ফাইলে সেটিংস যুক্ত করুন:
xpack.security.audit.enabled:true
d) Document এবং Field Level Security
Elasticsearch-এর সাহায্যে আপনি ডকুমেন্ট এবং ফিল্ড লেভেলে অ্যাক্সেস কন্ট্রোল কনফিগার করতে পারেন। এটি নিশ্চিত করে যে নির্দিষ্ট ইউজার বা রোল শুধুমাত্র নির্দিষ্ট ডকুমেন্ট বা ফিল্ড দেখতে বা মডিফাই করতে পারে।
উদাহরণ: কোনো ইউজার শুধু নির্দিষ্ট ডিপার্টমেন্টের ডেটা অ্যাক্সেস করতে পারবে এমন কন্ডিশন সেট করা।
e) IP Filtering এবং Firewall Integration
Elasticsearch-এ IP Filtering সেট করে নির্দিষ্ট IP অ্যাড্রেস বা IP রেঞ্জ থেকে অ্যাক্সেস নিয়ন্ত্রণ করা যায়।
ফায়ারওয়াল এবং অ্যাক্সেস কন্ট্রোল লিস্ট (ACL) ব্যবহার করে HTTP (9200) এবং Transport (9300) পোর্ট শুধুমাত্র নির্দিষ্ট IP-এর জন্য খুলে রাখুন।
2. User Authentication এবং Authorization
Elasticsearch-এ ইউজার অথেন্টিকেশন এবং অথরাইজেশন সিস্টেম সেটআপ করার জন্য বিভিন্ন পদ্ধতি রয়েছে। এগুলো নিশ্চিত করে যে শুধুমাত্র অথেন্টিকেটেড এবং অথরাইজড ইউজাররাই ডেটা এবং সিস্টেম অ্যাক্সেস করতে পারে।
a) Built-in User Authentication
Elasticsearch-এর বিল্ট-ইন ইউজার অথেন্টিকেশন ফিচার ব্যবহার করে ইউজার তৈরি এবং রোল এসাইন করা যায়।
ডিফল্টভাবে elastic ইউজার অ্যাডমিনিস্ট্রেটর রোল নিয়ে আসে, যার পাসওয়ার্ড কনফিগার করার জন্য কমান্ড ব্যবহার করা হয়:
bin/elasticsearch-setup-passwords interactive
নতুন ইউজার এবং রোল তৈরি করতে Kibana UI অথবা Elasticsearch API ব্যবহার করতে পারেন।
b) Role Creation এবং Assignment
Elasticsearch-এর RBAC সিস্টেম ব্যবহার করে বিভিন্ন রোল তৈরি করুন এবং ইউজারদের এসাইন করুন। উদাহরণ:
একটি নির্দিষ্ট ইউজারকে নির্দিষ্ট রোল অ্যাসাইন করুন:
POST /_security/user/sales_user
{"password":"password123","roles":["sales_role"]}
c) External Authentication Providers (LDAP, SAML, OAuth)
Elasticsearch এক্সটার্নাল অথেন্টিকেশন প্রোভাইডার যেমন LDAP, SAML, এবং OAuth 2.0 সাপোর্ট করে। এই প্রোভাইডারগুলো ইন্টিগ্রেট করে কর্পোরেট ডিরেক্টরি বা আইডেন্টিটি ম্যানেজমেন্ট সিস্টেম ব্যবহার করে ইউজার অথেন্টিকেশন করা যায়।
SAML Integration: SAML প্রোটোকল ব্যবহার করে সিঙ্গল সাইন-অন (SSO) সক্ষম করা যায়।
d) API Key এবং Token-based Authentication
Elasticsearch API অ্যাক্সেস করার জন্য API Key বা Token-based অথেন্টিকেশন ব্যবহার করা যেতে পারে, যা নির্দিষ্ট ইউজার বা রোলের জন্য সিকিউরিটি নিশ্চিত করে।
এই API কী নির্দিষ্ট সময়ের জন্য অ্যাক্সেস দিতে পারে এবং স্কোপ-ভিত্তিক প্রিভিলেজ কনফিগার করা যায়।
3. Elasticsearch Security Best Practices
Enable HTTPS (TLS) Everywhere: ক্লাস্টারের সব নোড এবং ক্লায়েন্টের মধ্যে HTTPS এনক্রিপশন সক্রিয় রাখুন।
Use Strong Passwords and Rotate Them Regularly: ইউজারদের জন্য স্ট্রং পাসওয়ার্ড পলিসি প্রয়োগ করুন এবং নিয়মিত পাসওয়ার্ড পরিবর্তন করুন।
Apply Least Privilege Principle: প্রতিটি ইউজার বা রোলকে শুধুমাত্র তাদের প্রয়োজনীয় মিনিমাম প্রিভিলেজ দিন।
Monitor Audit Logs: Audit Logging সক্রিয় করে নিয়মিত লগ মনিটর করুন, যাতে সন্দেহজনক এক্টিভিটি দ্রুত সনাক্ত করা যায়।
Limit Public Access: প্রোডাকশন পরিবেশে Elasticsearch কখনোই ইন্টারনেট থেকে সরাসরি অ্যাক্সেসযোগ্য না রাখুন। শুধুমাত্র ট্রাস্টেড নোড এবং ক্লায়েন্ট থেকে অ্যাক্সেস দিন।
উপসংহার
Elasticsearch-এ সিকিউরিটি ফিচার এবং ইউজার অথেন্টিকেশন পদ্ধতি সঠিকভাবে ব্যবহার করে আপনি সিস্টেম এবং ডেটাকে সুরক্ষিত রাখতে পারেন। সঠিক কনফিগারেশন, RBAC, TLS/SSL এনক্রিপশন, এবং এক্সটার্নাল অথেন্টিকেশন প্রোভাইডার ইন্টিগ্রেশন ব্যবহার করে একটি শক্তিশালী এবং সিকিউর পরিবেশ তৈরি করা সম্ভব।